<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <script>
  //需求：封装一个函数，函数可以实现x的n次方
  function pow1(x,n){
    return x**n
  }
  
  console.log(pow1(2,3))
  console.log(pow1(3,3))
  console.log(Math.pow(2,4))
  //自己实现  x的n次幂
  // function pow2(x,n) {
  //   var sum=1
  //   for(var i=1;i<=n;i++){
  //     sum*=x
     
  //   }
  //  return sum
  // }
  function pow2(x,n){
    var result=1
    for(var i=0;i<n;i++){
      result*=x
    }
    return result
  }
  console.log(pow2(2,3))
//使用递归
// function pow3(x,n){
//   var sum1=1
//   var n1=1
//   if(n1<n){
//     sum*=x
//     n1++
//     break
//   }
// }
// console.log("----------------------")
// console.log(pow3(2,5))
//递归的使用方式,必须要有结束条件
//缺点：性能是比较低的（占用过多的栈内存)
//优点:写出来的代码非常简洁
console.log("==============================")
function pow(x,n){
  //在某一个条件，让他不在是继续调用
  if(n===1)return  x
  return x*pow(x,n-1)
}
var result=pow(2,3)
console.log(pow(2,3))
// pow(x,n) === x * pow(x,n-1)
  </script>
</body>
</html>